A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The present invention generally relates to the field of managing the development and release of software programs and more particularly to a method for controlling versions of source code.
Version control, also known as source code control or revision control, is a component of configuration management. The objective behind version control is to enable a particular xe2x80x9csnapshotxe2x80x9d of a development process to be recovered at some stage in the future (i.e. after the development has moved on in time from the snapshot time). The objectives of a typical version control system include allowing the software developer to create new versions, retrieve old versions, view changes between versions, and co-ordinate concurrent development. To be able to do this the version control system should be able to maintain a complete history of content and changes to the source code.
There are a wide variety of version control systems available to software developers. However, the prior art in this area is limited because a user is not allowed to extend the functionality of version control systems to include special handling and processing functions.
The prior art also lacks the flexibility to allow users to version all file types in a way that allows typical version control operations, such as check-out, check-in, branch, merge, history, differences, etc. to work in an efficient and informative manner.
Another problem with the prior art is that files are versioned as either text files or binary files. Text files are line-based and versions are stored as a set of changes to the lines. This method of storage is space efficient compared to storing versions of the entire file. Binary files are not line-based and versions are not typically stored in a space efficient manner. The problem is that in order to version a binary file an entirely new version of the file is stored.
Yet another problem with the prior art is that extensions to the version control system typically require modifications to the version control applications before the extensions can be utilized.
Accordingly, it is an object of this invention to provide a method for controlling versions of source code, which allows users to extend the functionality of the version control system to include special handling and processing functions.
Another object of this invention is to allow users to define their own file types and to version them in an efficient and informative manner.
Yet another object of this invention is to permit extensions to the version control system that can be utilized from version control applications that are unaware of the extension.
Still another object of this invention is to provide a method for storing versions in a manner that is appropriate for the particular file type. This eliminates the need to group all non-text file types as binary as was done in the prior art and may also eliminate the need to store entire files of new versions resulting in a savings of storage.
These and other objects, which will become apparent as the invention is described in detail below, are provided by {paraphrase broadest claim}.
Still other objects, features and advantages of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein is shown and described only the preferred embodiment of the invention, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive, and what is intended to be protected by Letters Patent is set forth in the appended claims. The present invention will become apparent when taken in conjunction with the following description and attached drawings, wherein like characters indicate like parts, and which drawings form a part of this application.